This disclosure relates generally to information retrieval and distribution systems. More specifically, it relates to a method and system for assembling and distributing content components generated by multiple resource servers having diverse authentication requirements.
It is common for today's enterprise networks to comprise scattered arrangements of different hardware and software systems. This is due to the ever-changing data management needs of corporate enterprises, and to continuing advances in the computing hardware and software available to meet those needs. Commonly, different entities within an enterprise (for example, different departments or work sites) have disparate software applications, groupware systems, or data maintenance architectures/procedures, such that information created or maintained by one entity is not usable by another entity.
Corporate portals, also referred to as intranet portals, have been introduced to increase the accessibility and usability of information stored across the heterogeneous systems of an enterprise network. A corporate portal, which is usually overlaid onto an existing enterprise network, is designed to extract content from disparate systems on the enterprise network and to allow easier, personalized access to that content by end users. It is to be appreciated that while the features and advantages of the implementations described herein are particularly advantageous for corporate portal environments, enhancing their speed, openness, scalability, and stability, the features and advantages of the implementations are also applicable in other environments, such as with personalized “Web portals” that serve broad user bases. By way of example and not by way of limitation, one example of a corporate portal is the Plumtree Corporate Portal available from Plumtree Software, Inc. of San Francisco, California, while examples of personalized Web portals are typified by the MyYahoo! resource from Yahoo, Inc. of Sunnyvale, California and MyExcite from At Home Corp. of Redwood City, Calif. Corporate portals are also described in commonly assigned U.S. Ser. No. 09/896,039, filed Jun. 29, 2001, which is incorporated by reference herein.
FIG. 1 shows a simplified view of an exemplary user screen 102 associated with a corporate portal system, comprising a plurality of content components 104-110. A content component refers to any content that is assembled, along with other content components, into a unified body of content. In the example of FIG. 1, a company news content component 104 includes an HTML display of news that is extracted, for example, from one or more company news servers, and arranged for display to the end user. A company stock quote content component 106 comprises an HTML display of a stock quote for the company and its competition that is extracted, for example, from a stock quote server. Also shown in FIG. 1 is an email content component 108 and a customer relationship management (CRM) content component 110. According to the end user's ID 112, the corporate portal displays the content components 104- 110 in a personalized arrangement (for example, news at the upper left, company stock quote in the upper right, and so on) and also selects the information within each content component based on the user's ID (for example, showing the user's personal e-mail account only, showing sports news on top of world news, showing only the user's personal CRM information, and so on). The user screen 102 of FIG. 1 would typically appear after the user (Jane Smith) has logged into the corporate portal system by supplying a user name and password.
More generally, the content components themselves can be any information communicable via any generic application-layer network protocol such as Hypertext Transfer Protocol (HTTP), Secure Hypertext Transfer Protocol (HTTPS), File Transfer Protocol (FTP), Wireless Application Protocol (WAP), and the like. Information communicable via a network includes text information, image information, Extensible Markup Language (XML), Hypertext Markup Language (HTML), or any other type of information that can be stored in a computer file, including images, sounds, and video. Throughout this specification we refer to any information sent over a network as content. We use the term content component to refer to any content that is assembled, along with other content components, into a unified body of content.
An exemplary content component is the HTML output generated by a script that communicates with an email client application. An email client application sends and receives email. Such applications usually let users compose email, and store email addresses in an address book. This script provides an HTML interface to the email client application. This script is hosted by the computer hosting the email application. This script generates HTML displaying the user's email messages, along with HTML allowing the user to compose and send email messages. This script can communicate with the email application through the application's programming interface. In this example, the HTML generated by the script is the content component (see, for example, FIG. 1, content component 108).
Other exemplary content components are two types of HTML generated by a program that communicates with a database application. This program can be hosted by the same computer hosting the database application. The database application stores and maintains a database of information organized into records. This program can communicate with the database application via the application's interface. This program generates HTML that allows the user to search for database records. For this case, the content component is a query box. This program also generates HTML that displays database records to the user. For this case, the content component is a view of the database records (see, for example, FIG. 1, content component 110). Further examples of content components include, but are not limited to, resources generated by a calendar application, a workflow application, a database storing proprietary personal information, a database storing proprietary business information, a database storing secure personal information, a database storing secure business information, an e-business application, and the like.
Content components are obtained from servers referred to herein as “resource servers.” In some cases, resource servers may be secure, so that security credentials are required to gain access to the content on a secure resource server. FIG. 2 shows a system 200 for delivering personalized content according to a prior art method. A plurality of secure resource servers 202-208, each protected by an authenticator 222-228, host various types of content. Each authenticator 222-228 authenticates each user before allowing access to the protected server. Referring to FIG. 2, a CRM server 202 protected by an authenticator 222 hosts content such as customer lists and customer contact information. An email server 204 protected by an authenticator 224 hosts content such as email messages for a group of users. A stock quotes server 206 protected by an authenticator 226 hosts content such as stock quotes and charts. A news server 208 protected by an authenticator 228 hosts content such as headlines and news features. A main process 216 within a Web server 210 maintains a list of the types of content available from resource servers 202-208, and advertises these types of content to users.
Users employ user terminals 218A and 218B through 218N to access Web server 210 over a network 220 such as the Internet. A user establishes personalized settings in part by selecting certain of the types of content that are advertised by Web server 210. Subsequent to this personalization step, the user sends a request for personalized content to Web server 210. The personalized content can include content residing upon secure resource servers. Therefore, Web server 210 must provide security credentials to each secure resource server.
According to one prior art method Web server 210 simply forces the user to supply a security credential every time a secure resource server requires one. Since remembering multiple passwords or authentication methods is difficult for many users, users often write down or forget passwords, or use the same password for all of the secure resource servers. These user reactions create potential security and management problems.
According to another prior art method Web server 210 collects and stores the user security credentials for all of the secure resource servers. Whenever a secure resource server requires a security credential, Web server 210 simply provides all of the user's security credentials to the secure resource server. While relieving the user from entering his security credentials again and again, this technique creates significant security risks. For example, one of the secure resource servers could access another of the secure resource servers by spoofing the user.
To overcome these deficiencies in the prior art, techniques referred to as “Single-Sign-On” (SSO) have recently been developed. SSO techniques allow a user to access computers and systems to which he has permission through a single action, without the need to enter multiple passwords. One such technique is Kerberos, which allows a user to delegate authentication functions to another entity, such as Web server 210. One significant disadvantage of kerberos is that it does not support generic application-layer protocols, such as hypertext transfer protocol (HTTP) or file transfer protocol (FTP). Therefore a user cannot use Kerberos through a standard Web browser, such as Microsoft Internet Explorer or Netscape Navigator, without significant modification to the browser.
Some commercially-available off-the-shelf SSO products, such as Netegrity Siteminder and Securant Cleartrust, employ HTTP as the application-layer protocol, and so are compatible with unmodified browsers. When a user first visits a web site employing this type of SSO product, the web site authenticates the user and then gives the user browser a token, such as a session cookie, that allows the user to access any other web site that is guarded by the same SSO product without going through the original web site or authenticating again. One disadvantage of such SSO products is that they work only with other SSO products. A token from one SSO product will not provide access to a secure web site that does not employ that SSO product.
Another prior art solution is Microsoft Passport, which provides a single authenticator, controlled by Microsoft. According to Passport, the secure resource server shares a secret key with the Microsoft Passport Authenticator. One disadvantage of Passport is that, in order to share a private key with the Microsoft Passport Authenticator, each secure resource server must enter a business relationship with Microsoft.
Another prior art solution is represented by the capability of some browsers to store a security credential required by a Web site, and to forward the security credential to the Web site automatically when the user directs the browser to that Web site. Such security credentials can include session cookies, persistent cookies, and digital certificates. One disadvantage of this approach is that it is not portable. In order to use this approach on a second computer, the user must install the credentials on that computer as well. In addition, if the second computer is available to other users, the credentials must be removed when the session ends to prevent a security breach.